package com.aizuda.boot.modules.business.contract.entity;

import com.aizuda.boot.modules.common.constant.enums.EmptyAssigneeEnum;
import com.aizuda.boot.modules.common.constant.enums.RepeatAssigneeEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 合同流程实体类
 *
 * @Author sangyirong
 * @Version 1.0
 * @Date 2025/5/20 13:36
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("contract_workflow")
public class ContractWorkflowEntity {

    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "流程ID")
    private Long id;

    @Schema(defaultValue = "流程名称")
    private String workflowName;

    @Schema(description = "流程类型ID")
    private Integer typeId;

    @Schema(description = "是否启用该流程")
    private Boolean isEnabled;

    @Schema(description = "是否发布该流程")
    private Boolean isPublished;

    @Schema(description = "创建时间")
    private Date createdAt;

    @Schema(description = "更新时间")
    private Date updatedAt;

    @Schema(description = "流程类型")
    private String WorkflowType;

    @Schema(description = "空审批人策略")
    private EmptyAssigneeEnum emptyState;

    @Schema(description = "指定用户时用户id")
    private String userId;

    @Schema(description = "重复审批人策略")
    private RepeatAssigneeEnum repeatState;

    @Schema(description = "指定跳过节点时，节点id")
    private String nodeId;

    @Schema(description = "流程定义 key 唯一标识")
    private String processKey;

    @Schema(description = "优先级")
    private Integer priority;

    @Schema(description = "系统租户")
    private String sysTenantKey;
}
